class RenombrarTareasPresupuestos < ActiveRecord::Migration
  def self.up
    #cuando se hace una relación de muchos a muchos entre 2 tablas A y B el nombre
    #de la tabla resultante debe ser 
    #   el nombre de la 1ra tabla por orden alfabetico + "_" + el nombre de la 2ª tabla por orden alfabetico
    #en el caso de A y B sería A_B
    #por eso mismo tengo que renombrar la tabla tareas_presupuestos a presupuestos_tareas
    #ver: http://wiki.rubyonrails.org/rails/pages/has_and_belongs_to_many
    
    rename_table :tareas_presupuestos, :presupuestos_tareas
    #tambien cambiarán por tanto las claves externas
    #   ¿claves externas = indices?
    #remove_index :presupuestos_tareas, :name => :fk_tareas_presupuestos_tareas
    #remove_index :presupuestos_tareas, :name => :fk_tareas_presupuestos_presupuestos
    #remove_index :presupuestos_tareas, :name => :fk_tareas_presupuestos_grupo_tareas
    #add_index "presupuestos_tareas", ["tarea_id"], :name => "fk_presupuestos_tareas_tareas"
    #add_index "presupuestos_tareas", ["presupuesto_id"], :name => "fk_presupuestos_tareas_presupuestos"
    #add_index "presupuestos_tareas", ["grupo_tareas_id"], :name => "fk_presupuestos_tareas_grupo_tareas"
    #¿o debiera usar....?
    #execute "ALTER TABLE presupuestos_tareas DROP CONSTRAINT fk_tareas_presupuestos_tareas "
    #execute "ALTER TABLE presupuestos_tareas DROP CONSTRAINT fk_tareas_presupuestos_presupuestos "
    #execute "ALTER TABLE presupuestos_tareas DROP CONSTRAINT fk_tareas_presupuestos_grupo_tareas "
    #execute "ALTER TABLE presupuestos_tareas ADD CONSTRAINT fk_presupuestos_tareas_tareas FOREIGN KEY ( tarea_id ) REFERENCES tareas( id ) "
    #execute "ALTER TABLE presupuestos_tareas ADD CONSTRAINT fk_presupuestos_tareas_presupuestos FOREIGN KEY ( presupuesto_id ) REFERENCES presupuestos( id ) "
    #execute "ALTER TABLE presupuestos_tareas ADD CONSTRAINT fk_presupuestos_tareas_grupo_tareas FOREIGN KEY ( grupo_tareas_id ) REFERENCES grupo_tareas( id ) "
    
    
  end

  def self.down
    rename_table :presupuestos_tareas, :tareas_presupuestos
    
    #remove_index :presupuestos_tareas, :name => :fk_presupuestos_tareas_tareas
    #remove_index :presupuestos_tareas, :name => :fk_presupuestos_tareas_presupuestos
    #remove_index :presupuestos_tareas, :name => :fk_presupuestos_tareas_grupo_tareas
    #add_index "presupuestos_tareas", ["tarea_id"], :name => "fk_tareas_presupuestos_tareas"
    #add_index "presupuestos_tareas", ["presupuesto_id"], :name => "fk_tareas_presupuestos_presupuestos"
    #add_index "presupuestos_tareas", ["grupo_tareas_id"], :name => "fk_tareas_presupuestos_grupo_tareas"
  end
end
